﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;
using BLL.DTO.Imagenes;

namespace BLL.DTO.HelperDTO.Propiedad
{
    public class GenericPropiedadDTO
    {
        #region [Propiedad]
        public int IdPropiedad { get; set; }

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelTipoPropiedad")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelTipoPropiedad")]
        public int IdTipoPropiedad { get; set; }

        public int RutUsuario { get; set; }

        public int TipoPersonaUsuario { get; set; }

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelDireccion")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelDireccion")]
        public string Direccion { get; set; }

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelNumeroPropiedad")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelNumeroPropiedad")]
        public int NumeroPropiedad { get; set; }

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelTerreno")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelTerreno")]
        public int Terreno { get; set; }

        public DateTime FechaRegistro { get; set; }

        public int SuperficieConstruida { get; set; }

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelRegion")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelRegion")]
        public int IdRegion { get; set; }

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelCiudad")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelCiudad")]
        public int IdCiudad { get; set; }

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelComuna")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelComuna")]
        public int IdComuna { get; set; }

        public int PrecioUF { get; set; }

        #endregion

        #region [Casa]

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelCasaEstiloCasa")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelCasaEstiloCasa")]
        public char CasaEstiloCasa { get; set; }

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelCasaTipoConstruccion")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelCasaTipoConstruccion")]
        public char CasaTipoConstruccion { get; set; }

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelCasaAnoConstruccion")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelCasaAnoConstruccion")]
        public int CasaAnoConstruccion { get; set; }

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelCasaDescripcionLiving")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelCasaDescripcionLiving")]
        public string CasaDescripcionLiving { get; set; }

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelCasaDescripcionComedor")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelCasaDescripcionComedor")]
        public string CasaDescripcionComedor { get; set; }

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelCasaCantidadDormitorios")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelCasaCantidadDormitorios")]
        public int CasaCantidadDormitorios { get; set; }

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelCasaCantidadBanos")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelCasaCantidadBanos")]
        public int CasaCantidadBanos { get; set; }

        [Required(ErrorMessageResourceType = typeof(Resources.Business.Propiedad), ErrorMessageResourceName = "errorRequiredLabelCasaOrientacion")]
        [Display(ResourceType = typeof(Resources.Business.Propiedad), Name = "labelCasaOrientacion")]
        public string CasaOrientacion { get; set; }

        public int CasaCantidadEstacionamiento { get; set; }

        public string CasaDetalle { get; set; }

        public string CasaDistribucion { get; set; }

        #endregion

        #region [Departamento]

        public char DptoTipoDepartamento { get; set; }
        public char DptoTipoConstruccion { get; set; }
        public int DptoAnoConstruccion { get; set; }
        public string DptoDescripcionLiving { get; set; }
        public string DptoDescripcionComedor { get; set; }
        public int DptoCantidadDormitorios { get; set; }
        public int DptoCantidadBanos { get; set; }
        public string DptoOrientancion { get; set; }
        public string DptoDistribucion { get; set; }
        public string DptoDetalle { get; set; }

        #endregion

        #region [Oficina]

        public char OficinaTipoConstruccion { get; set; }
        public int OficinaAnoConstruccion { get; set; }
        public int OficinaCantidadBanos { get; set; }
        public bool OficinaCocina { get; set; }
        public string OficinaDetalle { get; set; }

        #endregion

        #region [Terreno]

        [Required]
        public char TerrenoTipoTerreno { get; set; }

        [Required]
        public char TerrenoTipoTierra { get; set; }

        [Required]
        public string TerrenoDetalle { get; set; }

        #endregion

        #region [Imagenes]

        public string NombreImagenPortada { get; set; }
        public string NombreImagen2 { get; set; }
        public string NombreImagen3 { get; set; }
        public string NombreImagen4 { get; set; }
        public string NombreImagen5 { get; set; }

        #endregion
    }
}
